<?php
include("../config.inc.php");
include("../util.php");	
include("../clases.php");
require_once("../FirePHPCore-0.3.2/lib/FirePHPCore/FirePHP.class.php");
/*ob_start();
$alerta = FirePHP::getInstance(true);
$alerta->info($_REQUEST["prd"],"hola:");*/
			
session_start();

if(!$_SESSION["obj_sesion"]->compruebaAcceso("ADME")){		echo "<script language='javascript'>location.href='salir.php'</script>";
		die(); }		

switch($_REQUEST["action"]){

	/*#######################################################################################################################################################*/
/*##################################################################  RECOGIDA DE DATOS  #######################################################################*/
/*#######################################################################################################################################################*/

	// Comprueba que el numero de expedicion no se repita
	case 'consultaExpedicionUsada': {
		
		//Recogemos el numero de expedicion introducido por el usuario
		$expedicionUsada = $_REQUEST["expUsada"];
		
		//Hacemos una consulta con el numero de expedicion anterior para comprobar si existe en la base de datos
		$expedicionesRecogida=array();
		//$expedicionesEntrega=array();
		$expedicionesRecogida=consultaMultiple("albaran_recogida", "fecha_baja IS NULL and n_expedicion=".$expedicionUsada);
		//$expedicionesEntrega=consultaMultiple("albaran_entrega", "fecha_baja IS NULL and n_expedicion=".$expedicionUsada);
		
		//Enviamos a funciones.js la respuesta pertinente en caso de que este numero de expedicion ya exista o no
		if(count($expedicionesRecogida)>0)
		{
			die("expedicion_usada");
		}
		
		if($expedicionUsada == ""){ die("blanco");}
		
		die("OK");
	};
	
	//Inserta los datos del albaran
	case 'insertarCabecera':{
		//Comprobamos los datos del albaran para que no estén vacíos o sean erroneos
		$expedicionAlbaran = $_REQUEST["expedicion"];
		if($expedicionAlbaran<=0 || $expedicionAlbaran==""){die("expedicion");}
		$distribuidorAlbaran = $_REQUEST["distribuidor"];
		if($distribuidorAlbaran==0){die("distribuidor");}
		$fechaAlbaran = $_REQUEST["fecha"];
		if($fechaAlbaran==""){die("fecha");}
		
		//Comprobamos que los datos introducidos por el usuario no se repitan en la base de datos
		//$expedicion_usada_1=array();
		$expedicion_usada_2=array();
		//$expedicion_usada_1=consultaMultiple("albaran_entrega", "fecha_baja IS NULL and n_expedicion=".$expedicionAlbaran);
		$expedicion_usada_2=consultaMultiple("albaran_recogida", "fecha_baja IS NULL and n_expedicion=".$expedicionAlbaran);
		
		//Si estos datos ya existen en la base de datos se avisa al usuario de que este numero de expedicion ya está ocupado
		if(count($expedicion_usada_2) > 0){die("expedicion_usada");}		
		
		//Se coge el id del nuevo albaran en funcion de los id_expedicion de ambos tipos de albaran
		$mayor1=maxid("albaran_recogida","id_expedicion");
		$mayor2=maxid("albaran_entrega","id_expedicion");
	
		if($mayor1>$mayor2){
			$id_expedicion = $mayor1;
		}
		else{
			$id_expedicion = $mayor2;
		}
	
		//Creamos un array con los datos del albaran y lo insertamos en la base de datos
		$albaran = array();
		$albaran["id_expedicion"] = $id_expedicion;
		$albaran["n_expedicion"] = $expedicionAlbaran;
		$albaran["fecha"] = fechaToMysql($fechaAlbaran);
		$albaran["id_distribuidor"] = $distribuidorAlbaran;	
		insertaBD("albaran_recogida",$albaran);
		
		die("OK");
	};

	//Inserta un lote
	case 'insertarLote':{
		//Cogemos los datos relativos al lote y el movimiento
		//También verificamos los datos para garantizar que sean correctos
		$indice = $_REQUEST["indice"];
		$idLote=maxid("lotes","id_lote");
		$idMovimiento=maxid("movimientos","id_movimiento");
		
		//Datos albaran y comprobaciones
		$expedicionAlbaran = $_REQUEST["expedicion"];
		if($expedicionAlbaran<=0 || $expedicionAlbaran==""){die("expedicion");}
		$distribuidorAlbaran = $_REQUEST["distribuidor"];
		if($distribuidorAlbaran==0){die("distribuidorLote");}
		
		//Datos linea de lote y comprobaciones
		$fechaLote=$_REQUEST["fecha_lote_".$indice];
		if($fechaLote==""){die("fechaLote");}
		$productoLote=$_REQUEST["id_producto_lote"];
		if($productoLote<=0){die("productoLote");}
		$numeroLote=$_REQUEST["nLote_".$indice];
		if($numeroLote<=0 || $numeroLote==""){die("numeroLote");}
		$existencia=consultaSimple("lotes","n_lote=".$numeroLote);
		if(count($existencia)>0){die("numeroAcabadoLote");}
		$unidadesLote=$_REQUEST["unidadesLote_".$indice];
		if($unidadesLote<=0 || $unidadesLote==""){die("unidadesLote");}

		//Creamos el movimiento, el lote, la línea de albarán y el incremento pertenecientes a la inserción del lote
		$movimiento=array();
		$lote = array();
		$linea=array();
		$suma=array();	
		
		//Insercion movimiento
		$movimiento["id_movimiento"] = $idMovimiento;
		$movimiento["id_producto"] = $productoLote;
		$movimiento["id_lote"] = $idLote;
		$movimiento["n_expedicion"] = $expedicionAlbaran;
		$movimiento["movimiento"] = "Entrada";
		$movimiento["unidades"] = $unidadesLote;
		$movimiento["fecha"] = date("Y-m-d H:i:s");
		insertaBD("movimientos", $movimiento);
		
		//Insercion lote
		$lote["id_lote"] = $idLote;
		$lote["n_lote"] = $numeroLote;
		$lote["id_producto"] = $productoLote;
		$lote["cantidad"] = $unidadesLote;
		$lote["fecha_caducidad"] = fechaToMysql($fechaLote);
		$lote["id_distribuidor"] = $distribuidorAlbaran;
		insertaBD("lotes", $lote);
		
		//Se coge el id de expedicion y se procede a la insercion de la linea de albaran
		$idExpedicion=consultaSimple("albaran_recogida","n_expedicion=".$expedicionAlbaran." AND fecha_baja IS NULL");
		$linea["id_expedicion"] = $idExpedicion["id_expedicion"];
		$linea["id_producto"] = $productoLote;
		$linea["id_lote"] = $idLote;
		$linea["cantidad"] = $unidadesLote;
		insertaBD("lineas_albaran_recogida", $linea);
		
		//Incrementar unidades del producto del lote
		$unidadesBD=array();
		$unidadesBD=consultaSimple("productos","id_producto=".$productoLote);
		$suma["unidades"]=(float)$unidadesBD["unidades"]+(float)$unidadesLote;
		modificaBD("productos",$suma,"id_producto=".$productoLote);
		
		die("OK");
	};
	
	//Es una llamada al autocompletar utilizado en el producto de los lotes
	case 'autocompleteLote':{
		//Se cogen los productos de la base de datos que tengan trazabilidad, ya que son los productos utilizados en los lotes
		$productoLote = consultaMultiple('productos','fecha_baja IS NULL AND trazabilidad=1');
		pasar_utf8_array($productoLote);
		echo '  
		<script type="text/javascript">	
		$(document).ready(			
			function autocompletar(){
			var productos = [';
			for($i=0;$i<count($productoLote);$i++){
				if($i==0){
					echo '{"label":"'.utf8_decode($productoLote[$i]["nombre"]).'", "id":"'.$productoLote[$i]["id_producto"].'",}';
				}
				else{
					echo  ', {"label":"'.utf8_decode($productoLote[$i]["nombre"]).'", "id":"'.$productoLote[$i]["id_producto"].'",}';
				}
			}
			echo '];					
								
				$("#productoLote").autocomplete({  
				  source: productos,
				  select: function(event, ui){
				  			$("#id_producto_lote").val(ui.item.id);
							obtenerProductoLote(ui.item.id);			  				
				  		}
				});      					
		});
		</script>';
		die();
	};
	
	//Es una llamada al datepicker que posee cada lote para establecer su fecha de caducidad
	case 'datepickerLote':{
		echo '
		<script type="text/javascript">
		var prd='.$_REQUEST["prd"].';
		$(document).ready(function(){
			$("#fechaLote_"+prd).datepicker({
								
								showOn: "button",
								buttonImage: "js/jquery/datepicker/images/calendar.gif",
								buttonImageOnly: true,
								changeYear: true,
								numberOfMonths: 1,
								monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
								monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],
								dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],
								dayNames: ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado"],
								firstDay: 1,
								dateFormat: "dd/mm/yy",
								onSelect: function(dateText,inst){
											$("#fecha_lote_"+prd).val(dateText);
										  }
			});
		});
		</script>';
	};
	
	//Obtinene todos los datos del producto en funcion del ean recogido y devuelve dichos datos
	case 'obtenerProducto':{
		//Se recoge el codigo ean que nos mandan y se envian los datos del producto con ese ean
		$codigoEan=$_REQUEST["ean"];
		$result=consultaSimple("productos","ean=".$codigoEan." AND trazabilidad=0");
		$resultado=array((string)$result["id_producto"],(string)$result["nombre"],(string)$result["unidades"],(string)$result["udsxcaja"]);
		$O=implode("-",$resultado);
		die($O);
	};
	
	//Obtiene el nombre del producto en funcion del id de producto recogido, se utiliza en los lotes
	case 'obtenerProductoLote':{
		$id=$_REQUEST["id"];
		$result=array();
		$result=consultaSimple("productos","id_producto=".$id);
		die($result["nombre"]);
	};

	//Es una llamada al autocompletar utilizado en las lineas de albaran normales, las que no van en lotes, y también del datepicker del albaran
	case 'reAutocompletar':{
		//Se recogen los datos de los productos que hay en la base de datos para mostrarlos en el autocompletar
		//$producto = consultaMultiple('productos','fecha_baja IS NULL AND trazabilidad=0','ORDER BY nombre');
		$producto = consultaMultiple(' productos p left join lotes l on p.id_producto=l.id_producto ',' p.fecha_baja is null and p.trazabilidad=0 ',"group by p.nombre having (l.cantidad=0 or l.cantidad is null)"," p.nombre as nombre, p.unidades as unidades, p.id_producto as id_producto2, l.*");
		pasar_utf8_array($producto);
		echo '  
		<script type="text/javascript">	
		var prd = '.$_REQUEST["prd"].';
		$(document).ready(			
			function autocompletar(){
			var productos = [';
			for($i=0;$i<count($producto);$i++){
				if($i==0){
					echo '{"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
				else{
					echo  ', {"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
			}
			echo '];					
								
				$("#producto_"+prd).autocomplete({  
				  source: productos,
				  select: function(event, ui){
				  			pasarID(prd,ui.item.id);
							llenarEAN(prd,ui.item.id);
							$("#id_producto").val(ui.item.id);
							$("#idProducto_"+prd).val(ui.item.id);
							llenarUndxPalet(prd,ui.item.id);
				  			if (document.getElementById(\'unidades_\'+prd).value == "")
				  			{
				  				//document.getElementById(\'contenedor\').innerHTML = "<font color=\'red\'><b>Introduzca las unidades del producto</b></font>";				  				
				  			}
							else{								
								actualizarLinea(prd,0);
								pasarID(prd,ui.item.id);
				  			}  		  		
				  				
				  		}
				}); 
			  			$("#campo_fecha").datepicker({
							
							showOn: "button",
      						buttonImage: "js/jquery/datepicker/images/calendar.gif",
      						buttonImageOnly: true,
      						changeYear: true,
      						numberOfMonths: 1,
							monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
							monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],
							dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],
							dayNames: ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado"],
							firstDay: 1,
							dateFormat: "dd/mm/yy",
							onSelect: function(dateText,inst){
										$("#fecha").val(dateText);
									  }
						});		
      					
		});
		
		$(document).ready(function(){
			if(document.getElementById("contenedor").innerHTML != ""){
				document.getElementById("stock_0").disabled="false";
				document.getElementById("palet_0").disabled="false";
				$("#palet_0").val("");
				$("#stock_0").val("");
				document.getElementById("stock_0").disabled="true";
				document.getElementById("palet_0").disabled="true";
				setTimeout(function(){document.getElementById("contenedor").innerHTML = ""},5000);
			}
		});
		
		</script>';
			die();
	};
	
	//Obtiene el stock de un producto en funcion de su id y lo devuelve
	case 'recogerStock':{
		//ob_start();
		//$alerta = FirePHP::getInstance(true);
		//$alerta->info($_REQUEST["idStock"],"id del stock");
		$stock=array();
		$stock=consultaSimple("productos","id_producto=".$_REQUEST["idStock"]);
		die($stock["unidades"]);
	};
	
	//Obtiene el ean de un producto en funcion de su id y lo devuelve
	case 'ean':{
		//ob_start();
		//$alerta = FirePHP::getInstance(true);
		//$alerta->info($_REQUEST["idEan"],"id del ean");
		$ean=array();
		$ean=consultaSimple("productos","id_producto=".$_REQUEST["idEan"]);
		die($ean["ean"]);
	};
	
	//Obtiene las unidades por caja de un producto en funcion de su id y lo devuelve
	case 'undxpalet':{
		//ob_start();
		//$alerta = FirePHP::getInstance(true);
		//$alerta->info($_REQUEST["iduxp"],"id de las unidades por palet");
		$ean=array();
		$ean=consultaSimple("productos","id_producto=".$_REQUEST["iduxp"]);
		die($ean["udsxcaja"]);
	};
	
	//Obtiene las cajas por palet de un producto en funcion de su id y lo devuelve
	case 'palet':{
		$palet=array();
		$palet=consultaSimple("productos","id_producto=".$_REQUEST["idPalet"]);
		die($palet["unidades_palet"]);
	};
	
	//Obtiene los datos de un distribuidor en funcion de su id recibido y crea un fieldset con dichos datos
	case 'datosDistribuidor':{
	
		//Se hace la consulta para recoger los datos del distribuidor
		$nombre = array();
		$nombre = consultaSimple("distribuidores d JOIN proveedores p ON d.id_proveedor=p.id_proveedor","id_distribuidor=".$_REQUEST["idDistribuidor"]." AND d.fecha_baja IS NULL","","d.nombre, d.cif, d.direccion, d.localidad, d.codigo_postal, d.provincia, d.telefono, d.fax, d.email, p.nombre proveedor");
		
		//Se crean y llenan los campos del fieldset con los datos del distribuidor		
		$datos = '<b>Nombre: </b>'.$nombre["nombre"].'<br>
						   <b>CIF: </b>'.$nombre["cif"].'<br>
						   <b>Direcci&oacute;n: </b>'.$nombre["direccion"].'<br>
						   <b>Localidad: </b>'.$nombre["localidad"].'<br>
						   <b> C.Postal: </b>'.$nombre["codigo_postal"].'<br>
						   <b> Provincia: </b>'.$nombre["provincia"].'<br>
						   <b> Tel&eacute;fono: </b>'.$nombre["telefono"].'<br>
						   <b> Fax: </b>'.$nombre["fax"].'<br>
						   <b> E-mail: </b>'.$nombre["email"].'<br>
						   <b>Proveedor: </b>'.$nombre["proveedor"];
		
		die($datos);	
		
	};
	/*#######################################################################################################################################################*/
/*##################################################################  FORMULARIO  #######################################################################*/
/*#######################################################################################################################################################*/

	//Es el formulario principal
	case 'form':{
		
		//Inicialmente la accion es la insercion
		$vector=array();
		$_action = "insertar";
		
		//Si nos envian un numero de expedicion es porque el albaran ya existe, y la accion pasa a ser la modificacion, se recogen los datos del albaran en funcion de su numero de expedicion, los datos de sus lineas de albaran y los datos de sus lotes
		if(isset($_REQUEST["n_expedicion"])){
			$_action = "modificar";
			/*$vector contiene los datos del albarán cuyo numero de expedicion hemos recuperado*/
			$vector = consultaSimple("albaran_recogida","n_expedicion=".$_REQUEST["n_expedicion"]." AND fecha_baja IS NULL");
			pasar_utf8_array($vector);
			/*$productos_modificacion es una matriz con los datos de los productos de dicho albarán(líneas de albarán)*/
			$productos_modificacion=consultaMultiple("lineas_albaran_recogida l, productos p","l.id_producto=p.id_producto and l.id_expedicion=".$vector["id_expedicion"]." AND l.fecha_baja IS NULL AND id_lote=0","","l.id_expedicion, l.cantidad , p.nombre, p.unidades, p.id_producto, p.ean, p.unidades_palet, p.udsxcaja");
			pasar_utf8_array($productos_modificacion);
			/*$productos_BD es una matriz que almacena los datos de todos los productos de la base de datos*/
			$productos_BD = consultaMultiple('productos');
			pasar_utf8_array($productos_BD);
			//Los lotes y sus respectivas lineas
			$lotes_modificacion=consultaMultiple("lineas_albaran_recogida lin","lin.id_expedicion=".$vector["id_expedicion"],"GROUP BY lin.id_producto HAVING lin.id_lote<>0");
		}
		
		//$producto es un arrray con los datos de los productos de la base de datos que no tienen trazabilidad
		$producto = consultaMultiple(' productos p left join lotes l on p.id_producto=l.id_producto ','  p.fecha_baja is null and p.trazabilidad=0 ',"group by p.nombre having (l.cantidad=0 or l.cantidad is null)"," p.nombre as nombre, p.unidades as unidades, p.id_producto as id_producto2, l.*");
		pasar_utf8_array($producto);
		/*$producto es una matriz que almacena los datos de todos los productos de la base de datos*/
		/*$producto = consultaMultiple('productos','fecha_baja IS NULL AND trazabilidad=0','ORDER BY nombre');
		pasar_utf8_array($producto);*/
		/*$distribuidor es una matriz que almacena los datos de todos los distribuidores de la base de datos*/
		$distribuidor = consultaMultiple('distribuidores','fecha_baja IS NULL');
		pasar_utf8_array($distribuidor);
		
		//$unidades es un array con el stock del producto especificado por su id
		$unidades = consultaSimple("productos","id_producto = ".$idStock,"","unidades");
		pasar_utf8_array($unidades);
	
		//Se introducen los valores del autocomplete en el caso de inserción y de modificación
		echo '
		<div id="scriptAutocomplete">
		<script type="text/javascript">  
		
		var prd = 0;';
		if($_action=="modificar"){echo 'prd='.count($productos_modificacion);}
		echo'
		$(document).ready(
			
			function autocompletar() {  
			 
			var productos = [';
			for($i=0;$i<count($producto);$i++){
				if($i==0){
					echo '{"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
				else{
					echo  ', {"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
			}
			echo '];';
			
			echo '
													
				$("#producto_"+prd).autocomplete({  
				
				  source: productos,
				  select: function(event, ui){  
				  			pasarID(prd,ui.item.id);
							$("#id_producto").val(ui.item.id);
							$("#idProducto_"+prd).val(ui.item.id);
							llenarEAN(prd,ui.item.id);
							llenarUndxPalet(prd,ui.item.id);
							$("#idProducto_"+prd).val(ui.item.id);';													
							
							echo '
							if (document.getElementById(\'unidades_\'+prd).value == "")
				  			{
				  				//document.getElementById(\'contenedor\').innerHTML = "<font color=\'red\'><b>Introduzca las unidades del producto</b></font>";
				  				
				  			}else{									
									actualizarLinea(prd,0);
									pasarID(prd,ui.item.id); 					
				  					
				  			}  		
				  		}
				});';
						
			echo ' 
			  			$("#campo_fecha").datepicker({
							showOn: "button",
      						buttonImage: "js/jquery/datepicker/images/calendar.gif",
      						buttonImageOnly: true,
      						changeYear: true,
      						numberOfMonths: 1,
							monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
							monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],
							dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],
							dayNames: ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado"],
							firstDay: 1,
							dateFormat: "dd/mm/yy",
							onSelect: function(dateText,inst){
										$("#fecha").val(dateText);';
										if($_action=="insertar"){
											echo 'datosPrincipales();';
										}
										else{
											echo 'modificarFechaAlbaran();';
										}
										echo '
									  }									
						});				
      					
		});
		
		$(document).ready(function(){
			$("#tablaLineasLote").hide();
			$("#cabeceraLineasLote").hide();
			$("#campoLote").hide();			
		});
		
		</script>
		</div>';
		
		//Aqui empieza la interface de usuario de la pagina
		echo '<div style="width: 783px;"> 
				<fieldset style="width:767px;">
				<legend class="txt_normal"><b>Datos Albar&aacute;n Recogida</b></legend>
				<form id="formularioRecogida" name="formularioRecogida">
				<input type="hidden" name="id_expedicion" id="id_expedicion" value="'.$vector["id_expedicion"].'">
				<input type="hidden" value="" id="id_producto" name="id_producto">	
				<input type="hidden" name="fecha" id="fecha" value="'.$vector["fecha"].'">
				<input type="hidden" name="tipoAlbaran" id="tipoAlbaran" value="'.$_REQUEST["tipoAlbaran"].'">	
				<input type="hidden" name="accion" id="accion" value="'.$_action.'">
				<table width="792px" border="0" cellspacing="0" cellpadding="15" style="width: 768px;">
				  <tr>
					<td style="padding-right: 0px; padding-left: 0px;"><table style="width: 760px;" height="107" border="0" cellpadding="0" cellspacing="0">
						<tr>
						  <td colspan="3" class="filanormal"><span class="titulo_portada"> Albar&aacute;n de Recogida </span></td>
						</tr>    
							<tr>
						  <td colspan="3">&nbsp; </td>
						</tr>
						<tr>
						  <td width="221" class="titulo_inicio">N&#176; de Expedici&oacute;n</td>
						  <td width="204">&nbsp;</td>
						  <td width="501">&nbsp;</td>
						</tr>
						<tr>
						  <td>
						  <input'; if($_action=="modificar"){echo ' readonly="readonly"';} echo ' name="expedicion" type="text" class="cabecera_agenda_finde" id="expedicion" maxlength="12" value="'.$vector["n_expedicion"].'" onKeyPress="return comprobar_solonumeros_exp(event);"'; if($_action=="insertar"){echo ' onKeyUp="expedicionUsada();"';} echo ' onchange="datosPrincipales();"/><div id="contenedor_expedicion" name="contenedor_expedicion"></div></td>
						  <td>&nbsp;</td>
						  <td rowspan="3" style="float: right; width: 298px;">
						  <select'; if($_action=="modificar"){echo ' disabled="disabled"';} echo ' name="distribuidor" class="titulo_inicio" id="distribuidor" onChange="cargarDistribuidor(),datosPrincipales();" style="width: 298px;">
            					<option value="0">Seleccione un distribuidor de la lista</option>';
								//Se llena el combobox con los distribuidores de la base de datos
								for($z=0; $z<count($distribuidor);$z++){
									if($distribuidor[$z]["id_distribuidor"]==$vector["id_distribuidor"]){
										echo '<option selected="selected" value="'.$distribuidor[$z]["id_distribuidor"].'">'.utf8_decode($distribuidor[$z]["nombre"]).'</option>';
									}
									else{
											echo '<option value="'.$distribuidor[$z]["id_distribuidor"].'">'.utf8_decode($distribuidor[$z]["nombre"]).'</option>';
										}
							}
						echo '</select>	
							</td>
						</tr>
						<tr>
						  <td class="titulo_inicio" valign="top">Fecha<br><div id="contenido_fecha" style="width: 210px;" ><input name="campo_fecha" type="text" class="cabecera_agenda_finde" id="campo_fecha" value="'.$vector["fecha"].'" disabled="disabled"/></div><br><input '; if($_action=="insertar"){echo 'style="visibility:hidden" ';} echo 'id="botonLote" name="botonLote" type="button" class="lote" value="Lote" onclick="mostrarLote();"/></td>
						  <td width="260px" style="width: 180000px;"></td>
						   <td>';
						   //Si la accion es modificar, se hace una consulta para recoger los datos del distribuidor de dicho albaran en funcion de su id y se llena un fieldset con dichos datos
						   if($_action=="modificar"){
							   $distribuidor = consultaSimple("distribuidores d join proveedores p on d.id_proveedor=p.id_proveedor","id_distribuidor=".$vector["id_distribuidor"]." and d.fecha_baja is null","","d.id_distribuidor id, d.nombre, d.cif, d.direccion, d.localidad, d.codigo_postal, d.provincia, d.telefono, d.fax, d.email, p.nombre proveedor");
								echo '<fieldset id="fieldsetDistribuidor" name="fieldsetDistribuidor" style="width: 280px; margin-right: 0px; visibility:visible;"><div style="visibility:visible;"  id="DatosDistribuidor" name="DatosDistribuidor">
								<b>Nombre: </b>'.$distribuidor["nombre"].'<br>
							   <b>CIF: </b>'.$distribuidor["cif"].'<br>
							   <b>Direcci&oacute;n: </b>'.$distribuidor["direccion"].'<br>
							   <b>Localidad: </b>'.$distribuidor["localidad"].'<br>
							   <b> C.Postal: </b>'.$distribuidor["codigo_postal"].'<br>
							   <b> Provincia: </b>'.$distribuidor["provincia"].'<br>
							   <b> Tel&eacute;fono: </b>'.$distribuidor["telefono"].'<br>
							   <b> Fax: </b>'.$distribuidor["fax"].'<br>
							   <b> E-mail: </b>'.$distribuidor["email"].'<br>
							   <b>Proveedor: </b>'.$distribuidor["proveedor"].'</div></fieldset>';					
						   }
						   //Si la accion es insertar se crea un fieldset vacio
						   else{
							   echo '<fieldset id="fieldsetDistribuidor" name="fieldsetDistribuidor" style="width: 280px; margin-right: 0px; visibility:hidden;"><div style="visibility:hidden;"  id="DatosDistribuidor" name="DatosDistribuidor"></div></fieldset>';
						   }
						   echo '</td>
						</tr>

					  </table></td>
				  </tr>';				 
		//-----------------------------------------------------------------------------------------------------------------------------
				  //Esta parte se encarga del autocompletar utilizado en los productos de los lotes
				  echo '<div id="scriptLote" name="scriptLote">';
				  //Se recogen los datos de los productos de la base de datos con trazabilidad, ya que se usan en los lotes
				  $productoLote = consultaMultiple('productos','fecha_baja IS NULL AND trazabilidad=1');
		pasar_utf8_array($productoLote);
		echo '  
		<script type="text/javascript">	
		$(document).ready(			
			function autocompletar(){
			var productos = [';
			for($i=0;$i<count($productoLote);$i++){
				if($i==0){
					echo '{"label":"'.utf8_decode($productoLote[$i]["nombre"]).'", "id":"'.$productoLote[$i]["id_producto"].'",}';
				}
				else{
					echo  ', {"label":"'.utf8_decode($productoLote[$i]["nombre"]).'", "id":"'.$productoLote[$i]["id_producto"].'",}';
				}
			}
			echo '];					
								
				$("#productoLote").autocomplete({  
				  source: productos,
				  select: function(event, ui){
				  			$("#id_producto_lote").val(ui.item.id);
							obtenerProductoLote(ui.item.id);
							document.getElementById("productoLote").disabled=true;		  				
				  		}
				}); 		
      					
		});		
		</script>
		</div>';
		//-----------------------------------------------------------------------------------------------------------------------------
		//Esta parte se encarga del datepicker utilizado en los lotes para definir su fecha de caducidad
		echo '
		<div id="dateLote" name="dateLote">
		<script type="text/javascript">
			$(document).ready(function(){
				$("#fechaLote_0").datepicker({
								
								showOn: "button",
								buttonImage: "js/jquery/datepicker/images/calendar.gif",
								buttonImageOnly: true,
								changeYear: true,
								numberOfMonths: 1,
								monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
								monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],
								dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],
								dayNames: ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado"],
								firstDay: 1,
								dateFormat: "dd/mm/yy",
								onSelect: function(dateText,inst){
											$("#fecha_lote_0").val(dateText);
										  }
				});
			});
		</script>
		</div>';

//-----------------------------------------------------------------------------------------------------------------------------
					//Si la accion es modificar, se muestran los lotes de dicho albaran
					if($_action=="modificar"){
						//Por cada producto se muestran sus lotes
						for($k=0;$k<count($lotes_modificacion);$k++){
							//Se recogen los datos del producto del lote
							$productoLoteModificacion=consultaSimple("productos","id_producto=".$lotes_modificacion[$k]["id_producto"]);
							//Se muestran los datos del producto del lote en el cuadro del autocomplete y en el titulo del fieldset
							echo '<tr id="campoLoteModificacion_'.$k.'" name="campoLoteModificacion_'.$k.'"><td colspan="3"><fieldset id="fieldLoteModificacion_'.$k.'" style="padding-bottom:5px" name="fieldLoteModificacion_'.$k.'"><legend class="cabecera_agenda_finde">Lotes de '.$productoLoteModificacion["nombre"].'</legend><center>
						<table id="tablaLoteModificacion_'.$k.'" name="tablaLoteModificacion_'.$k.'"><center>
								<tr class="titulo_inicio">
									<td colspan="4"><center><label class="cabecera_agenda_finde">Producto</label></center></td>
								</tr>
								<tr>
									<td colspan="4"><center><input type="text" disabled="disabled" value="'.$productoLoteModificacion["nombre"].'" class="autocompletar" style="width:360px;"><input type="hidden" id="id_producto_lote_'.$k.'" name="id_producto_lote_'.$k.'" value="'.$lotes_modificacion[$k]["id_producto"].'"></center></td>
								</tr>
						
								<tr class="cabecera_agenda_finde">
									<td><center><label style="margin-right: 3px; margin-left: 12px;">N&#176; Lote</label></center></td>
									<td><center><label style="margin-left: -25px;">Fecha Caducidad</label></center></td>
									<td><center><label style="margin-left: 0px; margin-right: 12px;">Cajas</label></center></td>
									<td></td>
								</tr>
								<tr><td colspan="4">
							<table id="tablaLineasLoteModificacion_'.$k.'" name="tablaLineasLoteModificacion_'.$k.'">';
							
							//Se recogen los datos de los lotes de dicho producto
							$lineasLotes=consultaMultiple("lineas_albaran_recogida","id_expedicion=".$lotes_modificacion[$k]["id_expedicion"]." AND id_producto=".$lotes_modificacion[$k]["id_producto"]);
							
							//Para cada lote se llena una linea de lote
							for($l=0;$l<count($lineasLotes);$l++){
								//Se recogen los datos del lote pertinente y se muestran en una linea	
								$lotesModificacion=consultaSimple("lotes","id_lote=".$lineasLotes[$l]["id_lote"]);					
								echo '<tr id="linea_lote_modificacion_'.$k.'_'.$l.'" name="linea_lote_modificacion_'.$k.'_'.$l.'">
										<td><center><input disabled="disabled" type="text" class="autocompletar" id="nLote_'.$k.'_'.$l.'" name="nLote_'.$k.'_'.$l.'" maxlength="18" value="'.$lotesModificacion["n_lote"].'" onkeypress="return comprobar_solonumeros_exp(event);"></center></td>
										<td><center><input type="text" class="autocompletar" id="fechaLote_'.$k.'_'.$l.'" name="fechaLote_'.$k.'_'.$l.'" disabled="disabled" value="'.$lotesModificacion["fecha_caducidad"].'"><input type="hidden" value="'.$lotesModificacion["fecha_caducidad"].'" id="fecha_lote_'.$k.'_'.$l.'" name="fecha_lote_'.$k.'_'.$l.'"></center></td>
										<td><center><input type="text" value="'.$lotesModificacion["cantidad"].'" id="unidadesLote_'.$k.'_'.$l.'" name="unidadesLote_'.$k.'_'.$l.'" class="autocompletar" style="width:70px;" onkeypress="return comprobar_solonumeros_2(event);" onchange="actualizarLineaLoteModificacion('.$k.','.$l.');"></center></td>
										<td> <img id="deleteLote_'.$k.'_'.$l.'" name="deleteLote_'.$k.'_'.$l.'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRowLoteModificacion('.$k.','.$l.');"> </td>
									</tr>';
							}
														
					echo '</table></td></tr>
					<tr><td colspan="4"><div id="errorLote" name="errorLote"></div></td></tr>
						</center></table>
</center></fieldset></td></tr>';
						}
					}
					
//-----------------------------------------------------------------------------------------------------------------------------
					//Esta parte crea un fieldset nuevo en caso de que se quieran introducir nuevos lotes
				  echo '<tr id="campoLote" name="campoLote"><td colspan="3">';
				  echo '<fieldset id="fieldLote" name="fieldLote"><legend class="cabecera_agenda_finde">Lotes producto</legend>';
				  echo '<center><table id="tablaLote" name="tablaLote"><center>					
								<tr class="titulo_inicio">
									<td colspan="4"><center><label class="cabecera_agenda_finde">Producto</label></center></td>
								</tr>
								<tr>
									<td colspan="4"><center><input type="text" id="productoLote" name="productoLote" class="autocompletar" style="width:360px;"></center></td>
								</tr>							
						
								<tr id="cabeceraLineasLote" name="cabeceraLineasLote" class="cabecera_agenda_finde"><center>
									<td><center><label style="margin-right: 3px; margin-left: 12px;">N&#176; Lote</label></center></td>
									<td><center><label style="margin-left: -25px;">Fecha Caducidad</label></center></td>
									<td><center><label style="margin-left: 0px; margin-right: 12px;">Cajas</label></center></td>
									<td></td>
								</center>
								</tr>
								<tr><td colspan="4">
									<table id="tablaLineasLote" name="tablaLineasLote">								
										<tr id="linea_lote_0">
											<td><center><input type="text" class="autocompletar" id="nLote_0" name="nLote_0" maxlength="18" onkeypress="return comprobar_solonumeros_exp(event);"></center></td>
											<td><center><input type="text" class="autocompletar" id="fechaLote_0" name="fechaLote_0" disabled="disabled"><input type="hidden" id="fecha_lote_0" name="fecha_lote_0"></center></td>
											<td><center><input type="text" id="unidadesLote_0" name="unidadesLote_0" class="autocompletar" style="width:70px;" onkeypress="return comprobar_solonumeros_2(event);" onchange="actualizarLineaLote(0,0);"></center></td>
											<td> <img id="deleteLote_0" name="deleteLote_0" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRowLote(0);"> </td>
										</tr>
									</table>
								</td></tr>
								<tr><td colspan="4"><div id="errorLote" name="errorLote"></div></td></tr>
						</center></table></center>
</fieldset></td></tr>';

//-----------------------------------------------------------------------------------------------------------------------------
				  //Se crea la cabecera de las lineas de albaran
				  echo '
				  <input type="hidden" id="id_producto_lote" name="id_producto_lote">';
						
				echo '<table id="tabla_cabecera_lineas_formulario" ';
				  if($_action=="insertar"){echo 'style="visibility:hidden" ';}
				  echo 'name="tabla_cabecera_lineas_formulario" style="width: 759px;">
  			  	  	<tr style="font-weight: bold; font-size=14px;" align="center" class="titulo_inicio">
				  		<td style="width: 94px;" > EAN </td>
  			  			<td style="width: 372px;"> Productos </td>
  			  			<td style="width: 59px;"> Und x Caja </td>
  			  			<td style="width: 62px;" align="center" > Stock/Cajas </td>
  			  			<td style="width: 68px;"> Cajas </td>
  			  			<td style="width: 64px;">'; echo wordwrap("Palets a Recoger", 8, "\n", true); echo '</td>
  			  			<td style="width: 8px;"> &nbsp; </td>
  			  		</tr>
  			  	  </table>
				  <tr>
					<td><table id="tabla_lineas_formulario"';
					//Si la accion es insertar, se crea una linea de albaran nueva en caso de querer insertar una nueva linea de albaran
					if($_action=="insertar"){echo ' style="visibility:hidden" ';}
					echo 'name="tabla_lineas_formulario" style="width: 759px;" border="0" cellspacing="0" cellpadding="0">
					
					';
					  /*Si el formulario es de inserción, se muestra una única línea */
					  if($_action == "insertar"){
					  
						/*Aquí empieza cada línea de inserción y su respectiva columna del autocompletar de productos*/
						echo '<tr id="linea_insercion_0" name="linea_insercion_0"> 
						<input type="hidden" id="idProducto_0" name="idProducto_0">
						
									<td style="width: 108px;"><input maxlength="13" type="text" id="ean_0" name="ean_0" onchange="obtenerProducto(0);" class="autocompletar" onKeyPress="return comprobar_solonumeros_exp(event);" style="width:105px; height:22px; padding-top:0px; padding-bottom:0px; border-bottom-width:1px; border-top-width:1px; margin-top:0px; padding-left: 0px;"></td>
									
									<td class="autocompletar" style="width: 315px;"> <input style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px;" type="text" id="producto_0" name="producto_0" class="autocompletar"> </td>';
						
						/*Aquí empieza la columna de unidades de cada línea de inserción*/
							echo '<td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:62px;" id="undxcaja_0" title="Unidades x Caja" />
								  </td>	
								  			
							<td style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; width:66px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" id="stock_0" title="Stock" />
								  </td>
								  
								  <td style="width: 75px;">
						  			<input style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" name="unidades_0" type="text" class="autocompletar" id="unidades_0" size="8" maxlength="5" title="Unidades" onChange="actualizarLinea(0,0);" onKeyPress="return comprobar_solonumeros_2(event);"/> </td>
						  			
						  		    <td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:66px;" id="palet_0" title="Palets"/></td>
								  <td> <img id="deleteImg_0" name="deleteImg_0" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow(0);"> </td>
						    </tr>';					    
					  
					  }
					  /*Si el formulario es de modificación, se cargan las líneas de dicho albarán*/
					  else{
						  for($j=0;$j<count($productos_modificacion);$j++){
							  /*Aquí empieza cada línea de modificación*/
							  echo '<tr id="linea_insercion_'.$j.'" name="linea_insercion_'.$j.'">
										<input type="hidden" id="idProducto_'.$j.'" name="idProducto_'.$j.'" value="'.$productos_modificacion[$j]["id_producto"].'">
										
										<td style="width: 108px;"><input '; 
										//Si la linea es de modificacion se desactiva el campo
										if ($j < count($productos_modificacion)){echo 'disabled="true"';}
																				
										echo ' maxlength="13" disabled="true" type="text" id="ean_'.$j.'"  name="ean_'.$j.'" class="autocompletar" onKeyPress="return comprobar_solonumeros_exp(event);" style="width:105px; height:22px; padding-top:0px; padding-bottom:0px; border-bottom-width:1px; border-top-width:1px; margin-top:0px; padding-left: 0px;" value="'.$productos_modificacion[$j]["ean"].'"></td>
										
										<td class="autocompletar" style="width: 315px;"> <input '; 
										//Si la linea es de modificacion se desactiva el campo
										if ($productos_modificacion[$j]["nombre"]!=""){echo 'disabled="true"';}
																				
										echo ' style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px;" type="text" id="producto_'.$j.'" name="producto_'.$j.'" class="autocompletar" value="'.$productos_modificacion[$j]["nombre"].'"> </td>
										
										<td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:62px;" id="undxcaja_'.$j.'" title="Unidades x Caja" value="'.$productos_modificacion[$j]["udsxcaja"].'" />
								  </td>	
										
										<td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; width:66px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" id="stock_'.$j.'" title="Stock" value="'.$productos_modificacion[$j]["unidades"].'" /> </td>
										
								 		<td style="width: 75px;"><input style="text-align:center; width: 66px;" name="unidades_'.$j.'" type="text" class="autocompletar" id="unidades_'.$j.'" maxlength="5" title="Unidades" onchange="actualizarLinea('.$j.','.count($productos_modificacion).');" onKeyPress="return comprobar_solonumeros_2(event);" value="'.$productos_modificacion[$j]["cantidad"].'"/> </td>
																		 		
						  		    	<td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:66px;" id="palet_'.$j.'" title="Palets" value="';
									//Se calculan los palets que se pueden llenar con la cantidad de dicha linea
									if($productos_modificacion[$j]["cantidad"]>0){
										echo (round(($productos_modificacion[$j]["cantidad"]/$productos_modificacion[$j]["unidades_palet"])*100)/100); 
									}
										echo '"/> </td>
										
								  		<td> <img id="deleteImg_'.$j.'" name="deleteImg_'.$j.'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow('.$j.');"> </td>

						    	   </tr>';
						  }
						  //La nueva línea en caso de querer insertar una linea de albaran nueva
									  echo '<tr id="linea_insercion_'.count($productos_modificacion).'" name="linea_insercion_'.count($productos_modificacion).'"> 
									<input type="hidden" id="idProducto_'.count($productos_modificacion).'" name="idProducto_'.count($productos_modificacion).'">
						
									<td style="width: 108px;"><input maxlength="13" type="text" id="ean_'.count($productos_modificacion).'" name="ean_'.count($productos_modificacion).'" onchange="obtenerProducto('.count($productos_modificacion).');" class="autocompletar" onKeyPress="return comprobar_solonumeros_exp(event);" style="width:105px; height:22px; padding-top:0px; padding-bottom:0px; border-bottom-width:1px; border-top-width:1px; margin-top:0px; padding-left: 0px;"></td>
									
									<td class="autocompletar" style="width: 315px;"> <input style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px;" type="text" id="producto_'.count($productos_modificacion).'" name="producto_'.count($productos_modificacion).'" class="autocompletar"> </td><td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:62px;" id="undxcaja_'.count($productos_modificacion).'" title="Unidades x Caja" />
								  </td>	
								  			
							<td style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; width:66px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" id="stock_'.count($productos_modificacion).'" title="Stock" />
								  </td>
								  
								  <td style="width: 75px;">
						  			<input style="text-align:center; height: 20px; width: 66px;" name="unidades_'.count($productos_modificacion).'" type="text" class="autocompletar" id="unidades_'.count($productos_modificacion).'" maxlength="5" title="Unidades" onchange="actualizarLinea('.count($productos_modificacion).','.count($productos_modificacion).');" onKeyPress="return comprobar_solonumeros_2(event);"/> </td>
						  			
						  		    <td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:66px;" id="palet_'.count($productos_modificacion).'" title="Palets"/></td>
								  <td> <img id="deleteImg_'.count($productos_modificacion).'" name="deleteImg_'.count($productos_modificacion).'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow('.count($productos_modificacion).');"> </td>
						    </tr>';	
					  }
					  echo '</table></td>
				  </tr>
				  <br><br>
				  <tr>
					<td>
					<center>';
					//Se guardan en campos ocultos los ids de los productos de las lineas de albaran existentes para su posterior uso
					for($i=0;$i<count($productos_modificacion);$i++){
						echo '<input type="hidden" id="producto_modificacion_id_'.$i.'" name="producto_modificacion_id_'.$i.'" value="'.$productos_modificacion[$i]["id_producto"].'">';
					}
					
					//Se crea el textarea de las observaciones y se llena en caso de que la accion sea modificar y nos lleguen los datos de un albaran
					echo '	
					
					<label class="titulo_inicio" style="font-size:14px;">Observaciones:</label> <br><textarea maxlength="500" onkeyup="restarLimite();" onchange="insertarObservaciones();" class="cabecera_agenda_finde" id="observaciones" style=" height: 100px; max-height: 100px; max-width: 763px; text-align: justify; width: 763px; min-height: 100px; min-width: 763px;">'.utf8_decode($vector["observaciones"]).'</textarea></center> <div id="maxCaracteres" style="text-align:right; width: 763px;color:red;">'; echo 500 - strlen(utf8_decode($vector["observaciones"])); echo '</div> <center>		
<br>							
					<input type="button" value="&nbsp;Guardar" id="guardar" style="width:100px;" class="aceptar" onclick="botonAceptar(\''.$_action.'\');" > <input type="button" value="&nbsp;Imprimir" id="imprimir" style="width:100px;" class="aceptar" onclick="imprimirPDF('.$vector["n_expedicion"].');" >
					<input type="button" value="Imprimir ean" id="imprimir" style="width:120px;" class="aceptar" onclick="imprimireanPDF('.$vector["n_expedicion"].');" >'; if($_action=="modificar"){echo '<input type="button" value="Volver" style="width:100px;" class="volver" onclick="volver_atras_2(\''.$_action.'\');">';} echo '<br><div id="contenedor" name="contenedor"></div><br> </center>
					</td>
				  </tr>
				</table>
				</form>
				</fieldset>
				</div>
				';				
		break;
	};
	

/*#######################################################################################################################################################*/
/*################################################### OPERACIONES DE EDICION DE REGISTROS ###############################################################*/
/*#######################################################################################################################################################*/
	
	//Se insertan las lineas de albaran normales
	case 'insertarLinea':{
		
		//Hacemos comprobaciones para verificar que no haya ningún campo negativo o vacío que pueda dar error
		//if($_REQUEST["expedicion"]<=0 || $_REQUEST["expedicion"]==""){die("expedicion");}		
		
		//if($_REQUEST["fecha"]==""){die("fecha");}
		
		//if($_REQUEST["distribuidor"]==0){die("distribuidor");}
		
		//Recogemos el índice del producto a insertar
		$indice=$_REQUEST["indice"];		
		
		//Comprobamos que no haya campos vacíos que puedan ocasionar error		
		if($_REQUEST["idProducto_".$indice]<1){die("producto");}
		
		if($_REQUEST["unidades_".$indice]=="" || $_REQUEST["unidades_".$indice]<=0){die("unidades");}
		
		//Comprobamos que la cantidad requerida no sobrepase las existencias
		$unidadesBD=consultaSimple("productos","id_producto=".$_REQUEST["idProducto_".$indice]);
		//if($unidadesBD["unidades"]<$_REQUEST["unidades_".$indice]){die("agotado");}
		
		$vector = array();
		$vector2=array();
		
		//Recogemos el id del albaran
		$id=consultaSimple("albaran_recogida","n_expedicion=".$_REQUEST["expedicion"]." AND fecha_baja IS NULL");
		
		//Comprobamos si este producto ya se encuentra en el albarán, si es así, se procede a modificar su cantidad en vez de a        insertar el mismo producto
		$existencia=consultaSimple("lineas_albaran_recogida","id_expedicion=".$id["id_expedicion"]." AND id_producto=".$_REQUEST["idProducto_".$indice]." AND id_lote=0");
		
		if((count($existencia))>0){
			//Se aumenta la cantidad de la linea de albarán existente en caso de que el producto ya exista en el albarán y no esté dado 			de baja lógica
			if($existencia["fecha_baja"]==NULL){
				$vector["cantidad"]=(float)$existencia["cantidad"]+str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
			}
			//Si el producto estaba dado de baja lógica, se le vuelve a dar de alta y se le introduce la cantidad especificada por el   			usuario
			else{
				$vector["fecha_baja"]=NULL;
				$vector["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
			}			
			//Se procede a modificar el registro existente con los nuevos datos
			$id=consultaSimple("albaran_recogida","n_expedicion=".$_REQUEST["expedicion"]." AND fecha_baja IS NULL");			
			modificaBD("lineas_albaran_recogida",$vector,"id_producto=".$_REQUEST["idProducto_".$indice]." AND id_expedicion=".$id["id_expedicion"]);			
		}
		else{
			//Si la línea de albarán no existe, se procede a su inserción
			$id2=consultaSimple("albaran_recogida","n_expedicion=".$_REQUEST["expedicion"]." AND fecha_baja IS NULL");
			$vector["id_expedicion"]=$id2["id_expedicion"];
			$vector["id_producto"]=$_REQUEST["idProducto_".$indice];
			$vector["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
			insertaBD("lineas_albaran_recogida",$vector);
		}
		
		//Se aumentan las correspondientes unidades en el stock de los productos		
		$vector2["unidades"]=(float)$unidadesBD["unidades"]+str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
		modificaBD("productos",$vector2,"id_producto=".$_REQUEST["idProducto_".$indice]);
		
		die();		
		
	};
	
	//Se modifican las lineas de albaran normales
	case 'modificarLinea':{
		
		//Cogemos los datos de las líneas del albarán de modificación
		$productos_modificacion=consultaMultiple("lineas_albaran_recogida","id_expedicion=".$_REQUEST["id_expedicion"]." AND fecha_baja IS NULL");
		pasar_utf8_array($productos_modificacion);
		
		//Recogemos el índice del producto a modificar
		$indice=$_REQUEST["indice"];		
		
		//Recogemos el índice de la expedición
		$id_expedicion = $_REQUEST["id_expedicion"];
		
		//Comprobamos que no haya campos vacíos que puedan ocasionar error		
		if($_REQUEST["idProducto_".$indice]<1){die("producto");}
		
		if($_REQUEST["unidades_".$indice]=="" || $_REQUEST["unidades_".$indice]<=0){die("unidades");}	
		
		//Comprobamos que la cantidad requerida no sobrepase las existencias
		$unidadesBD=consultaSimple("productos","id_producto=".$_REQUEST["idProducto_".$indice]);
		//if($unidadesBD["unidades"]<$_REQUEST["unidades_".$indice]){die("agotado");}	
		
		/*
		$vector se usa para almacenar las nuevas unidades de la linea de albaran introducidas por el usuario
		$vector3 se usa para almacenar las nuevas unidades del producto de la linea
		*/
		$vector=array();
		$vector2=array();
		$vector3=array();
		
		//Array para controlar el incremento y decremento de unidades del producto
		$vector4=array();
		
		//Comprobamos si este producto ya se encuentra en el albarán, si es así, se procede a modificar su cantidad en vez de a        	insertar el mismo producto
			$existencia=consultaSimple("lineas_albaran_recogida","id_expedicion=".$id_expedicion." AND id_producto=".$_REQUEST["idProducto_".$indice]);
		
		//Comprobamos a través del índice del producto si es un producto ya existente que hay que modificar o si es un nuevo producto   		que hay que insertar en la base de datos
		if($indice<count($productos_modificacion)){
			if((count($existencia))>0){				
				//Si el producto nuevo ya existe, se incrementa la cantidad del producto existente y se borra virtualmente el registro  				modificado
				if($existencia["fecha_baja"]==NULL){
					$vector["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);					
				}
				//Si el producto estaba dado de baja lógica, se le vuelve a dar de alta y se le introduce la cantidad especificada por el usuario, además de borrar virtualmente el antiguo registro que acabamos de modificar
				else{
					$vector["fecha_baja"]=NULL;
					$vector["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				}
				
				//Se aumentan o decrementan las correspondientes unidades en el stock de los productos
				$vector4=consultaSimple("lineas_albaran_recogida","id_expedicion=".$id_expedicion." AND id_producto=".$_REQUEST["idProducto_".$indice]);
				
				//En el caso de que las unidades introducidas por el usuario sean mayores que las que había anteriormente en la linea de albaran se calcula la diferencia de unidades y se incrementan las unidades del producto en dicha diferencia
				if($vector4["cantidad"]<$_REQUEST["unidades_".$indice]){
					$vector3["unidades"]=(float)$unidadesBD["unidades"]+str_replace(",",".",(((float)$_REQUEST["unidades_".$indice])-(float)$vector4["cantidad"]));
				}
				//En el caso de que las unidades introducidas por el usuario sean menores que las que había anteriormente en la linea de albaran se calcula la diferencia de unidades y se decrementan las unidades del producto en dicha diferencia
				else{
					$vector3["unidades"]=(float)$unidadesBD["unidades"]-str_replace(",",".",((float)$vector4["cantidad"]-((float)$_REQUEST["unidades_".$indice])));
				}
				//Se modifican las cantidades en la base de datos, primero las cantidades o unidades del producto y despues las de la linea de albaran
				modificaBD("productos",$vector3,"id_producto=".$_REQUEST["idProducto_".$indice]);
				
				modificaBD("lineas_albaran_recogida",$vector,"id_producto=".$_REQUEST["idProducto_".$indice]." AND id_expedicion=".$id_expedicion);	
			}		
		}
		else{			
			if((count($existencia))>0){
				//Se aumenta la cantidad de la linea de albarán existente en caso de que el producto ya exista en el albarán y no esté dado 			de baja lógica
				if($existencia["fecha_baja"]==NULL){
					$vector["cantidad"]=(float)$existencia["cantidad"]+str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				}
				//Si el producto estaba dado de baja lógica, se le vuelve a dar de alta y se le introduce la cantidad especificada por el   			usuario
				else{
					$vector["fecha_baja"]=NULL;
					$vector["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				}
				
				//Se aumentan o decrementan las correspondientes unidades en el stock de los productos
				$vector3["unidades"]=(float)$unidadesBD["unidades"]+str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				modificaBD("productos",$vector3,"id_producto=".$_REQUEST["idProducto_".$indice]);
							
				//Se procede a modificar el registro existente con los nuevos datos			
				modificaBD("lineas_albaran_recogida",$vector,"id_producto=".$_REQUEST["idProducto_".$indice]." AND id_expedicion=".$id_expedicion);			
			}
			else{
				//Si la línea de albarán no existe, se procede a su inserción
				$vector["id_expedicion"]=$id_expedicion;
				$vector["id_producto"]=$_REQUEST["idProducto_".$indice];
				$vector["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				insertaBD("lineas_albaran_recogida",$vector);
				
				//Se aumentan o decrementan las correspondientes unidades en el stock de los productos
				$vector3["unidades"]=(float)$unidadesBD["unidades"]+str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				modificaBD("productos",$vector3,"id_producto=".$_REQUEST["idProducto_".$indice]);
			}			
		}
		
		die();		
		
	};
	
	//Se borra virtualmente una linea de albaran normal
	case 'borrarLinea':{
		//Se procede al borrado virtual de la línea de albarán;
		$indice=$_REQUEST["indice"];
		$id=$_REQUEST["idProducto_".$indice];			
		//Almacena la fecha de bajada
		$vector = array();
		//Almacena la resta de unidades
		$vector2=array();
		//Almacena las unidades de la base de datos del producto
		$vector3=array();
		
		//Se coge la fecha actual para dar de baja		
		$vector["fecha_baja"] = date("Y-m-d H:i:s");
		modificaBD("lineas_albaran_recogida",$vector,"id_expedicion=".$_REQUEST["id_expedicion"]." AND id_producto=".$id);		
		
		//Si las unidades de la linea a borrar superan las unidades del stock del producto el stock se pone a cero, si las unidades de la linea a borrar es menor que el stock del producto se restan normalmente las unidades de la linea del stock
		$vector3=consultaSimple("productos","id_producto=".$id);
		if($vector3["unidades"]<$_REQUEST["unidades_".$indice]){
			$vector2["unidades"]=0;
		}
		else{
			$vector2["unidades"]=$vector3["unidades"]-$_REQUEST["unidades_".$indice];
		}
		//Se modifica el stock del producto
		modificaBD("productos",$vector2,"id_producto=".$id);
		
		die("OK");
	};
	
	//Se insertan las observaciones del albaran
	case 'insertarObservaciones':{
		
		//$obs es un array que almacena las observaciones que nos envian
		$obs = array();
		//$exp almacena el numero de expedicion del albaran
		$exp = $_REQUEST["expedicionObservaciones"];
		//Se recogen los datos del albaran en funcion del numero de expedicion que nos envian
		$idExpedicionObservaciones=consultaSimple("albaran_recogida","n_expedicion=".$exp." AND fecha_baja IS NULL");
		$obs["observaciones"] = $_REQUEST["obvs"];
		$obs["observaciones"] = utf8_encode($obs["observaciones"]);
		//Comprobamos que el albaran existe en la base de datos para poder añadirle los comentarios
		$expedicion_usada=consultaMultiple("albaran_recogida","fecha_baja IS NULL and id_expedicion=".$idExpedicionObservaciones["id_expedicion"]);

		//Si efectivamente el albaran existe en la base de datos, se procede a añadirle los comentarios
		if (count($expedicion_usada) > 0)
		{
			modificaBD("albaran_recogida",$obs,"id_expedicion=".$idExpedicionObservaciones["id_expedicion"]);
		}
		die();		
	};
	
	//Se borran las lineas de lote
	case 'borrarLineaLote':{
		//Se procede al borrado fisico del lote
		//Borrado fisico de movimiento
		//Borrado fisico de linea de albaran
		//Decremento de unidades de producto

		//Se recogen el id del lote a borrar, las unidades del producto a borrar, los datos del albaran del que se borran y las unidades de la linea de albaran
		$idLote=consultaSimple("lotes","n_lote=".$_REQUEST["numero"]." AND id_producto=".$_REQUEST["productoLoteBorrar"]);
		$unidadesProducto=consultaSimple("productos","id_producto=".$_REQUEST["productoLoteBorrar"]);
		$albaran=consultaSimple("albaran_recogida","n_expedicion = ".$_REQUEST["expedicionAlbaran"]." AND fecha_baja IS NULL");
		$unidadesLineaAlbaran = consultaSimple("lineas_albaran_recogida", "id_expedicion = ".$albaran["id_expedicion"]." AND id_producto = ".$_REQUEST["productoLoteBorrar"]." AND id_lote=".$idLote["id_lote"]);
		
		//Borrado lote
		borraBD("lotes"," n_lote = ".$_REQUEST["numero"]." AND id_lote = ".$idLote["id_lote"]);
		
		//Borrado movimiento
		borraBD("movimientos","id_lote=".$idLote["id_lote"]);
		
		//Borrado linea albaran
		borraBD("lineas_albaran_recogida","id_expedicion = ".$albaran["id_expedicion"]." AND id_producto = ".$_REQUEST["productoLoteBorrar"]." AND id_lote=".$idLote["id_lote"]);
			

		//Decremento stock producto
		$decremento=array();
		$decremento["unidades"] = $unidadesProducto["unidades"] - $unidadesLineaAlbaran["cantidad"];
		modificaBD("productos",$decremento," id_producto = ".$_REQUEST["productoLoteBorrar"]);
		
		die("OK");
		
	};
	
	//Se modifica la fecha del albaran
	case 'modificarFechaAlbaran':{
		
		//Se recoge la nueva fecha introducida por el usuario y se modifica en la base de datos
		$modificacion=array();
		$modificacion["fecha"]=fechaToMysql($_REQUEST["fecha"]);
		modificaBD("albaran_recogida",$modificacion,"n_expedicion=".$_REQUEST["expedicion"]." AND fecha_baja IS NULL");
		
		die("OK");
	};
	
	//Se modifican las lineas de lote
	case 'modificarLote':{
		//Modificar las unidades del lote
		//Modificar las unidades de la linea de albaran
		//Modificar las unidades del producto
		//Modificar las unidades del movimiento
		
		//Comprobamos que no se insertan unas unidades erroneas
		if($_REQUEST["unidadesLoteModificacion"]<=0){die("unidadesLote");}
		
		//Se hace una consulta para coger el id del lote a modificar
		$idLoteModificacion=consultaSimple("lotes","n_lote=".$_REQUEST["nLoteModificacion"]);
		
		$modificarLote=array();//Array para modificar el lote
		$modificarLinea=array();//Array para modificar la linea de albaran
		$modificarProducto=array();//Array para modificar el producto
		$modificarMovimiento=array();//Array para modificar el movimiento
		
		//Se hace una consulta para coger los datos del producto de dicho lote
		$productoLoteModificacion2=array();
		$productoLoteModificacion2=consultaSimple("productos","id_producto=".$_REQUEST["id_producto_lote_modificacion"]);
		
		//Modificar las unidades del producto
		//Si las nuevas unidades del lote superan a las anteriores, se incrementa el stock del producto en una cantidad equivalente a la diferencia de ambas
		if($_REQUEST["unidadesLoteModificacion"]>$idLoteModificacion["cantidad"]){
			$modificarProducto["unidades"]=((float)$productoLoteModificacion2["unidades"])+str_replace(",",".",((float)$_REQUEST["unidadesLoteModificacion"]-((float)$idLoteModificacion["cantidad"])));
		}
		//Si las nuevas unidades del lote son menores a las anteriores, se decrementa el stock del producto en una cantidad equivalente a la diferencia de ambas
		else{
			$modificarProducto["unidades"]=((float)$productoLoteModificacion2["unidades"])-str_replace(",",".",(((float)$idLoteModificacion["cantidad"])-(float)$_REQUEST["unidadesLoteModificacion"]));
		}
		modificaBD("productos",$modificarProducto,"id_producto=".$_REQUEST["id_producto_lote_modificacion"]);
				
		//Modificar las unidades del movimiento
		$modificarMovimiento["unidades"]=str_replace(",",".",(float)$_REQUEST["unidadesLoteModificacion"]);
		modificaBD("movimientos",$modificarMovimiento,"id_producto=".$_REQUEST["id_producto_lote_modificacion"]." AND id_lote=".$idLoteModificacion["id_lote"]." AND n_expedicion=".$_REQUEST["expedicionLoteModificacion"]);
		
		//Modificar las unidades del lote
		$modificarLote["cantidad"]=$_REQUEST["unidadesLoteModificacion"];
		modificaBD("lotes",$modificarLote,"n_lote=".$_REQUEST["nLoteModificacion"]);
		
		//Modificar las unidades de la linea de albaran
		$modificarLinea["cantidad"]=str_replace(",",".",(float)$_REQUEST["unidadesLoteModificacion"]);
		modificaBD("lineas_albaran_recogida",$modificarLinea,"id_lote=".$idLoteModificacion["id_lote"]);
		
		die("OK");
	};
	
	//Comprueba si el albaran actual tiene o no lineas de albaran, en caso de que no tenga devuelve un mensaje al usuario por si quiere borrar el albaran
	case 'comprobarGuardar':{
		
		//Se hace una consulta para coger el id del albaran actual
		$idComprobar=array();
		$idComprobar=consultaSimple("albaran_recogida","n_expedicion=".$_REQUEST["expedicionComprobarGuardar"]." AND fecha_baja IS NULL");
		//Se hace una consulta para comprobar si hay asociadas lineas de albaran a ese id de expedicion
		$comprobar=array();
		$comprobar=consultaMultiple("lineas_albaran_recogida","id_expedicion=".$idComprobar["id_expedicion"]." AND fecha_baja IS NULL");
		
		//Si existen lineas de albaran asociadas al albaran actual no se muestra nada, pero si no existen lineas de albaran asociadas al albaran actual se le da al usuario la opcion de borrar el albaran
		if(count($comprobar)>0){
			die("OK");
		}
		else{
			die("borrar");
		}
	};
	
	//Borra el albaran actual en caso de que no posea ninguna linea de albaran y el usuario desee borrar dicho albaran
	case 'borrarGuardar':{
		
		//Se hace una consulta para recoger el id del albaran
		$idExpedicionBorrar=array();
		$idExpedicionBorrar=consultaSimple("albaran_recogida","n_expedicion=".$_REQUEST["expedicionBorrarGuardar"]." AND fecha_baja IS NULL");
		//Se borran tanto el albaran como las posibles lineas de albaran que tuviera asociadas y estuvieran dadas de baja logica
		borraBD("albaran_recogida","n_expedicion=".$_REQUEST["expedicionBorrarGuardar"]." AND fecha_baja IS NULL");		
		borraBD("lineas_albaran_recogida","id_expedicion=".$idExpedicionBorrar["id_expedicion"]);
		
		die("OK");
	};
	
};
?>

